package top.tangyh.lamp.care.service;

import top.tangyh.basic.base.service.SuperService;
import top.tangyh.lamp.care.entity.BHl7YzYaoPlan;
import top.tangyh.lamp.care.vo.query.YzYaoPlanQueryVO;
import top.tangyh.lamp.care.vo.result.ExeYaoEventOutVO;
import top.tangyh.lamp.care.vo.result.HandoverMedicineVo;
import top.tangyh.lamp.care.vo.save.BHl7YzYaoPlanSaveVO;
import top.tangyh.lamp.care.vo.update.BHl7YzYaoPlanUpdateVO;
import top.tangyh.lamp.care.vo.result.BHl7YzYaoPlanResultVO;
import top.tangyh.lamp.care.vo.query.BHl7YzYaoPlanPageQuery;
import top.tangyh.lamp.care.vo.update.UpdateIsShowCareVO;

import java.util.List;
import java.util.Map;


/**
 * <p>
 * 业务接口
 * 医嘱执行计划表
 * </p>
 *
 * @author zqb
 * @date 2024-07-22 15:09:13
 * @create [2024-07-22 15:09:13] [zqb] [代码生成器生成]
 */
public interface BHl7YzYaoPlanService extends SuperService<Integer, BHl7YzYaoPlan> {

    /**
     * 交班统计接口
     *
     * @param hospitalNumber
     * @param currentDate
     * @param workStartTime
     * @param workEndTime
     * @return
     */
    HandoverMedicineVo getExeYaoDataByHandOver(String hospitalNumber, Long currentDate, Long workStartTime, Long workEndTime);


    /**
     * 根据orderId查询用药计划和明细
     * @param queryVO
     * @return
     */
    List<BHl7YzYaoPlan> selectPlanByQuery(YzYaoPlanQueryVO queryVO);


    Map<String, Number> getTotalUsed(List<ExeYaoEventOutVO> eventList, double total);

    List<BHl7YzYaoPlan> getYaoPlanListByGroupId(String groupId);


    void updateDeleteStatusByGroupId(String groupId,Integer status);


    /**
     * 修改是否显示特护单
     * @param updateIsShowCareVO
     * @return
     */
    int updateIsShowCare(UpdateIsShowCareVO updateIsShowCareVO);


    /**
     * 根据分组id和计划时间 还有入量类型修改 对应用药的实际用量
     * @param updateIsShowCareVO
     * @return
     */
    int updateYtCount(UpdateIsShowCareVO updateIsShowCareVO);


    List<BHl7YzYaoPlan> selectListByGroupIdPlanTime(String groupId, String planTime,String hospitalNumber);

}


